package io;

import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileInputStream;
/*
文件复制
 */
public class CopyDemo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("image.png");
        FileOutputStream fos=new FileOutputStream("image_cp.png");
        /*
        image.png图片数据
        11001100 00110011 111000 000111 10101010 01010101...
        第一次调用：d=fis.read();
        11001100 00110011 111000 000111 10101010 01010101...
        ^^^^^^^^
        读取的字节
        读取后d的样子
        d：00000000 00000000 00000000 11001100
                                      ^^^^^^^^
                                      写出的字节
        image_cp.png内容：
        11001100
         */
        int d;//记录每次读取到的字节
        /*
        while(true){ //死循环
            d=fis.read(); //读取1个字节
            if(d==-1){  //判断读取后返回值是否为-1（是否是文件末尾了）
              break; //如果是文件末尾就停止步循环
              }
              fos.write(d); //不是文件末尾则将读取的字节写入另一个文件
         */
        long start=System.currentTimeMillis();//读取当前系统时间的毫秒值
        while((d=fis.read())!=-1){ //每次循环先读取1字节，判断是否读取到末尾
            fos.write(d);//没有读取到末尾就将读取的字节写入复制的文件中
        }
        long end=System.currentTimeMillis();
        System.out.println("复制完毕！ 耗时："+(end-start)+"ms");
        fis.close();
        fos.close();
    }
}
